<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>快速排序</title>
</head>
<body>
<script>
    //快速排序
    var arr = [10,30,20,54,99,66,2,4,1];
    console.log('排序前: ',arr);
    //创建一个快速排序的函数
    //对array进行排序，返回一个排好序的新数组
    function quickSort(array) {
        //设置基线条件
        if(array.length <= 1){
            return array;
        }

        //获取一个基准值，获取数组的最后一个元素作为基准值
        var base = array[array.length - 1];

        //创建两个数组
        var left = [];//左数组，存储小于base的元素
        var right = [];//右数组，存储大于base的元素

        //比较每个元素和base的大小
        for(var i=0; i<array.length-1; i++){
            //比较当前值和基准值的大小
            if(array[i] < base){
                //放入左数组
                left.push(array[i]);
            }else{
                //放入右数组
                right.push(array[i]);
            }
        }
        //将left base right拼接为一个数组返回
        return quickSort(left).concat(base,quickSort(right));
    }

    var result = quickSort(arr);
    console.log('排序后: ',result);
</script>

</body>
</html>